#define RS_HIGH		(1)
#define RS_LOW		(0)

#define INC 		(1)
#define DEC 		(0)
#define SHIFT		(1)
#define NO_SHIFT 	(0)

#define DISP_ON 	(1)
#define DISP_OFF 	(0)
#define CURS_VIS 	(1)
#define CURS_INVIS 	(0)
#define BLINK		(1)
#define NO_BLINK	(0)

#define EIGHT_BIT	(1)
#define FOUR_BIT	(0)
#define ONE_ROW		(1)
#define TWO_ROWS	(0)
#define FIVEBY8		(1)
#define FIVEBY11	(0)

#define LCD_ENABLE	(4)
#define LCD_RS 		(5)

void LCD_Init(char port);
void delayms(int delay);
void LCDwrite4bits(char data);
void LCDwriteCommand(char command, char rs);
// Clear the display and return the cursor to the home position
void LCDclear(void);
// Return the cursor to the home position
void LCDreturnHome(void);
void LCDsetEntryMode(char inc, char shift);
void LCDdispOnOff(char disp, char curs, char blink);
void LCDshift(char disp, char right);
void LCDfunctionSet(char length, char lines, char font);
void LCDsetCGaddr(char address);
void LCDsetDDaddr(char address);
void LCDwrite(int data);
